package com.hk.commons.enums;

import com.hk.commons.util.Constants;
import com.hk.commons.util.ValidateUtils;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

/**
 * 手机区号与验证
 *
 * @author kevin
 * @date 2021-04-02 11:13
 */
@Getter
@RequiredArgsConstructor
public enum AreaCodeEnum {

    /**
     * 中国大陆手机号
     */
    CHINA {
        @Override
        public int getCode() {
            return Constants.CHINA_CODE;
        }

        @Override
        public boolean matcher(CharSequence str) {
            return ValidateUtils.isMobilePhone(str);
        }
    },

    /**
     * 中国香港手机号
     */
    HK {
        @Override
        public int getCode() {
            return Constants.HK_CODE;
        }

        @Override
        public boolean matcher(CharSequence str) {
            return ValidateUtils.isHKPhone(str);
        }
    };

    /**
     * 获取手机区号
     */
    public abstract int getCode();

    /**
     * 验证是否为合法的手机号格式
     */
    public abstract boolean matcher(CharSequence str);
}
